﻿#nullable enable

using System;
using System.IO;
using System.Threading.Tasks;

namespace PHMEE.EnergyEfficiency;

public interface IReportAppService
{
    /// <summary>
    /// 导出 IMO_DCS 报表
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="startDate"></param>
    /// <param name="endDate"></param>
    /// <returns></returns>
    Task<MemoryStream> ExportIMODCSReportAsync(Guid vesselId, DateTime startDate, DateTime endDate);
    
    /// <summary>
    /// 导出 MRV 报表
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="startDateTime"></param>
    /// <param name="endDateTime"></param>
    /// <returns></returns>
    Task<MemoryStream> ExportMRVEUReportAsync(Guid vesselId, DateTime startDateTime, DateTime endDateTime);

    /// <summary>
    /// 导出 LogAbstracts
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="startDateTime"></param>
    /// <param name="endDateTime"></param>
    /// <returns></returns>
    Task<MemoryStream> ExportLogAbstractsAsync(Guid vesselId, DateTime startDateTime, DateTime endDateTime);
}